package server;

import client.*;
import common.*;

/** Classe che gestisce il gioco in Locale.
 * Carica sia il Server che il Client_Locale.
 *
 */
public class Locale {
	private Partita partita;
	private Gioco gioco;
	private Server server;
	private Client_locale client;
	private C_GSessioneGioco c_gsessionegioco;
	
	/** Costruttore della classe Locale.
	 * Crea Client_locale, Server, Gioco, Partita e C_GSessioneGioco.
	 * 
	 */
	public Locale(){
		this.client = new Client_locale (this);
		this.server = (Server)this.client;
		this.gioco = new Gioco();
		this.partita = new Partita(server, gioco);
		this.c_gsessionegioco= new C_GSessioneGioco(client);
	}
	
	/** Metodo che restituisce l'oggetto di tipo Gioco.
	 * @return Ritorna l'oggetto di tipo Gioco istanziato dal costruttore.
	 */
	public Gioco getGioco(){
		return this.gioco;
	}
	
	/** Metodo che restituisce l'oggetto di tipo Partita.
	 * @return Ritorna l'oggetto di tipo Partita instanziato dal costruttore.
	 */
	public Partita getPartita(){
		return this.partita;
	}
	
	/** Metodo che restituisce l'oggetto di tipo Client.
	 * @return Ritorna l'oggetto di tipo Client instanziato dal costruttore.
	 */
	public Client_locale getClient(){
		return this.client;
	}
	
	/** Metodo che restituisce l'oggetto di tipo C_GSessoioneGioco.
	 * @return Ritorna l'oggetto di tipo C_GSessioneGioco instanziato dal costruttore.
	 */
	public C_GSessioneGioco getC_GSessionegioco(){
		return this.c_gsessionegioco;
	}
	
	
}
